package com.shop.shopmall.vo;

import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 返回结果集
 * @author jamie
 */
@Data
@NoArgsConstructor
public class Result<T> {

    /**
     * 返回结果代码
      */
    private String code;

    /**
     * 返回描述信息
     */
    private String msg;

    /**
     * 返回前端数据
     */
    private T data;

    public Result(T data) {
        this.data = data;
    }

    /**
     * 执行成功返回结果集，没有返回数据，适合增、删、改操作
     * @return
     */
    public static Result success() {
        Result result = new Result<>();
        result.setCode("1");
        result.setMsg("成功");
        return result;
    }

    /**
     * 执行成功返回结果集，有返回数据，适合查询操作
     * @return
     */
    public static<T> Result success(T data) {
        Result<T> result = new Result<>(data);
        result.setCode("1");
        result.setMsg("成功");
        return result;
    }

    /**
     * 执行失败返回结果集，使用msg封装错误信息
     * @param msg
     * @return
     */
    public static Result error(String msg) {
        Result result = new Result();
        result.setCode("0");
        result.setMsg(msg);
        return result;
    }

}
